// 数组中的迭代方法
// forEach()
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// arr.forEach(item => {
//     console.log(item)
// })

// forEach() 中断迭代
try {
    arr.forEach(item => {
        if (item === 5) {
            throw new Error('迭代中断')
        }
        console.log(item)
    })
} catch (error) {
    console.log(error.message)
}

// map()
const arr1 = arr.map(item => item * 2)
console.log(arr1)

// filter()
const arr2 = arr.filter(item => item > 5)
console.log(arr2)

// reduce()
// 累加
// pre 上一次的返回值(return)
// cur 当前值
const arr3 = arr.reduce((pre, cur) => pre + cur, 0)
console.log(arr3)

// some()
// 只要有一个元素满足条件, 就返回 true
const arr4 = arr.some(item => item > 5)
console.log(arr4)

// every()
// 只要有一个元素不满足条件, 就返回 false
const arr5 = arr.every(item => item > 5)
console.log(arr5)

// sort()
// 排序 升序
const arr6 = arr.sort((a, b) => a - b)
console.log(arr6)
// 排序 降序
const arr7 = arr.sort((a, b) => b - a)
console.log(arr7)

// 排序 字符串
const arr8 = ['a', 'c', 'b', 'd', 'e']
const arr9 = arr8.sort()
console.log(arr9)
// 排序 字符串 降序
const arr10 = arr8.sort((a, b) => {
    if (a > b) {
        return -1
    } else if (a < b) {
        return 1
    } else {
        return 0
    }
})
console.log(arr10)



